#pragma once
//
//#include "IViewfinderSource.h"
//#include "DXHelper.h"
//
//struct VertexPositionCoord
//{
//	DirectX::XMFLOAT2 pos;
//	DirectX::XMFLOAT2 uv;
//};
//
//ref class ViewfinderRenderer sealed
//{
//public:
//	ViewfinderRenderer(NiklasKarl::WarpCam::Native::IViewfinderSource^ source);
//
//	void Initialize();
//	void CreateDeviceResources();
//	void CreateWindowSizeDependentResources();
//	void UpdateForNativeResolutionChange(float width, float height);
//	void UpdateForRenderResolutionChange(float width, float height);
//	void UpdateForRenderOrientationChange(Nokia::Graphics::Imaging::Rotation rotation, Nokia::Graphics::Imaging::FlipMode flip);
//	void UpdateForWindowSizeChange(float width, float height);
//
//	void Update();
//	void Render();
//
//internal:
//	virtual ID3D11Texture2D* GetTexture() { return m_pRenderTarget; }
//
//private:
//	// ViewfinderSource
//	NiklasKarl::WarpCam::Native::IViewfinderSource^ m_source;
//
//	// Direct3D Objects.
//	ID3D11Device1 *m_pDevice;
//	ID3D11DeviceContext1 *m_pContext;
//	ID3D11Texture2D *m_pRenderTarget;
//	ID3D11RenderTargetView *m_pRenderTargetView;
//
//	ID3D11VertexShader *m_pVertexShader;
//	ID3D11PixelShader *m_pPixelShader;
//	ID3D11InputLayout *m_pInputLayout;
//	ID3D11Buffer *m_pVertexBuffer;
//
//	ID3D11SamplerState *m_pBackgroundTextureSampler;
//	ID3D11Texture2D *m_pBackgroundTexture;
//	ID3D11ShaderResourceView *m_pBackgroundTextureView;
//
//	// Cached renderer properties.
//	bool m_loadingComplete;
//
//	D3D_FEATURE_LEVEL m_featureLevel;
//	Windows::Foundation::Size m_renderTargetSize;
//	Windows::Foundation::Size m_backgroundTextureSize;
//	Windows::Foundation::Rect m_windowBounds;
//
//	Nokia::Graphics::Imaging::Rotation m_rotation;
//	Nokia::Graphics::Imaging::FlipMode m_flip;
//};
